package lzupdater.com;

//LZRosterUpdater, a java client to update LZRoster
//Copyright (C) 2008 Fraskor from Krasus (e-mail: fraskor@gmail.com)
//
//This file is part of LZRosterUpdater.
//
//LZRosterUpdater is free software: you can redistribute it and/or modify
//it under the terms of the GNU General Public License as published by
//the Free Software Foundation, either version 3 of the License, or
//(at your option) any later version.
//
//This program is distributed in the hope that it will be useful,
//but WITHOUT ANY WARRANTY; without even the implied warranty of
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//GNU General Public License for more details.
//
//You should have received a copy of the GNU General Public License
//along with this program.  If not, see <http://www.gnu.org/licenses/>.

/**
 * Parent class of any Hub component.
 * 
 * @author Fraskor
 */
public abstract class HubComponent {
	protected final CommunicationHub hub;

	public HubComponent(CommunicationHub hub) {
		this.hub = hub;
		this.hub.add(this);
	}

	/**
	 * Initialized the reference to the components register into the Hub.
	 */
	public abstract void initializeCommunication();

	/**
	 * Called to initialized the component. This method is called after the
	 * method initializedCommunication has been called for all the registered
	 * components.
	 */
	public void initialize() {
	};

}
